/**
 */
package org.mro.grib.model.files.secondEdition.dataRepresentations;


/**
 * <!-- begin-user-doc -->
 * A representation of the model object '<em><b>Data Representation Template55</b></em>'.
 * <!-- end-user-doc -->
 *
 * <p>
 * The following features are supported:
 * <ul>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getReferenceValue <em>Reference Value</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getBinaryScaleFactor <em>Binary Scale Factor</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getDecimalScaleFactor <em>Decimal Scale Factor</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getScaledAndReferencedValueBitsNumber <em>Scaled And Referenced Value Bits Number</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getTypeOfOriginalFieldsValues <em>Type Of Original Fields Values</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getTypeOfCompression <em>Type Of Compression</em>}</li>
 *   <li>{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getTargetCompressionRatio <em>Target Compression Ratio</em>}</li>
 * </ul>
 * </p>
 *
 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55()
 * @model annotation="http://www.eclipse.org/emf/2002/GenModel description_en='Grid point data \u2013 JPEG 2000 code stream format' note_1_en='For most templates, details of the packing process are described in Regulation 92.9.4.' note_2_en='The purpose of this template is to scale the grid point data to obtain the desired precision, if appropriate, and then\r\nsubtract out the reference value from the scaled field as is done using data representation template 5.0. After this, the\r\nresulting grid point field can be treated as a grayscale image and is then encoded into the JPEG 2000 code stream\r\nformat. To unpack the data field, the JPEG 2000 code stream is decoded back into an image, and the original field is\r\nobtained from the image data as described in Regulation 92.9.4, Note 4.' note_3_en='The JPEG 2000 standard specifies that the bit-depth must be in the range of 1 to 38 bits.' note_4_en='The compression ratio M:1 (e.g. 20:1) specifies that the encoded stream should be less than ((1/M) x depth x number of\r\ndata points) bits, where depth is specified in octet 20 and the number of data points in octets 6\u20139 of the data\r\nrepresentation section.' note_5_en='The order of the data points should remain as specified in the scanning mode flags (Flag table 3.4) set in the\r\nappropriate grid definition template, even though the JPEG 2000 standard specifies that an image is stored starting\r\nat the top left corner. Assuming that the encoding software is expecting the image data in raster order (left to right\r\nacross rows for each row), users should set the image width to Ni (or Nx) and the height to Nj (or Ny) if bit 3 of the\r\nscanning mode flag equals 0 (adjacent points in i (x) order), when encoding the \"image\". If bit 3 of the scanning mode\r\nflags equals 1 (adjacent points in j (y) order), it may be advantageous to set the image width to Nj (or Ny) and the height\r\nto Ni (or Nx).' note_6_en='This template should not be used when the data points are not available on a rectangular grid, such as occurs if some\r\ndata points are bit-mapped out or if section 3 describes a quasi-regular grid. If it is necessary to use this template on\r\nsuch a grid, the data field can be treated as a one-dimensional image where the height is set to 1 and the width is set\r\nto the total number of data points specified in octets 6\u20139.' note_7_en='Negative values of E or D shall be represented according to Regulation 92.1.5.' note_8_en='JPEG 2000 should not be used for bit-mapped or quasi-regular grid data.'"
 * @generated
 */
public interface DataRepresentationTemplate55 extends IDataRepresentation {
	/**
	 * Returns the value of the '<em><b>Reference Value</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Reference Value</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Reference Value</em>' attribute.
	 * @see #setReferenceValue(int)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_ReferenceValue()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='R' description_en='Reference value (IEEE 32-bit floating-point value)'"
	 * @generated
	 */
	int getReferenceValue();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getReferenceValue <em>Reference Value</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Reference Value</em>' attribute.
	 * @see #getReferenceValue()
	 * @generated
	 */
	void setReferenceValue(int value);

	/**
	 * Returns the value of the '<em><b>Binary Scale Factor</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Binary Scale Factor</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Binary Scale Factor</em>' attribute.
	 * @see #setBinaryScaleFactor(short)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_BinaryScaleFactor()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='E' description_en='Binary scale factor'"
	 * @generated
	 */
	short getBinaryScaleFactor();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getBinaryScaleFactor <em>Binary Scale Factor</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Binary Scale Factor</em>' attribute.
	 * @see #getBinaryScaleFactor()
	 * @generated
	 */
	void setBinaryScaleFactor(short value);

	/**
	 * Returns the value of the '<em><b>Decimal Scale Factor</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Decimal Scale Factor</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Decimal Scale Factor</em>' attribute.
	 * @see #setDecimalScaleFactor(short)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_DecimalScaleFactor()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='D' description_en='Decimal scale factor (D)'"
	 * @generated
	 */
	short getDecimalScaleFactor();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getDecimalScaleFactor <em>Decimal Scale Factor</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Decimal Scale Factor</em>' attribute.
	 * @see #getDecimalScaleFactor()
	 * @generated
	 */
	void setDecimalScaleFactor(short value);

	/**
	 * Returns the value of the '<em><b>Scaled And Referenced Value Bits Number</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Scaled And Referenced Value Bits Number</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Scaled And Referenced Value Bits Number</em>' attribute.
	 * @see #setScaledAndReferencedValueBitsNumber(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_ScaledAndReferencedValueBitsNumber()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Number of bits required to hold the resulting scaled and referenced data values' description_en='Number of bits required to hold the resulting scaled and referenced data values (i.e. depth\r\nof the grayscale image) (see Note 2)'"
	 * @generated
	 */
	byte getScaledAndReferencedValueBitsNumber();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getScaledAndReferencedValueBitsNumber <em>Scaled And Referenced Value Bits Number</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Scaled And Referenced Value Bits Number</em>' attribute.
	 * @see #getScaledAndReferencedValueBitsNumber()
	 * @generated
	 */
	void setScaledAndReferencedValueBitsNumber(byte value);

	/**
	 * Returns the value of the '<em><b>Type Of Original Fields Values</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Of Original Fields Values</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Of Original Fields Values</em>' attribute.
	 * @see #setTypeOfOriginalFieldsValues(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_TypeOfOriginalFieldsValues()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Type of original field values' description_en='Type of original field values (see Code table 5.1)'"
	 * @generated
	 */
	byte getTypeOfOriginalFieldsValues();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getTypeOfOriginalFieldsValues <em>Type Of Original Fields Values</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Of Original Fields Values</em>' attribute.
	 * @see #getTypeOfOriginalFieldsValues()
	 * @generated
	 */
	void setTypeOfOriginalFieldsValues(byte value);

	/**
	 * Returns the value of the '<em><b>Type Of Compression</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Type Of Compression</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Type Of Compression</em>' attribute.
	 * @see #setTypeOfCompression(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_TypeOfCompression()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Type of compression used' description_en='Type of compression used (see Code table 5.40)'"
	 * @generated
	 */
	byte getTypeOfCompression();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getTypeOfCompression <em>Type Of Compression</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Type Of Compression</em>' attribute.
	 * @see #getTypeOfCompression()
	 * @generated
	 */
	void setTypeOfCompression(byte value);

	/**
	 * Returns the value of the '<em><b>Target Compression Ratio</b></em>' attribute.
	 * <!-- begin-user-doc -->
	 * <p>
	 * If the meaning of the '<em>Target Compression Ratio</em>' attribute isn't clear,
	 * there really should be more of a description here...
	 * </p>
	 * <!-- end-user-doc -->
	 * @return the value of the '<em>Target Compression Ratio</em>' attribute.
	 * @see #setTargetCompressionRatio(byte)
	 * @see org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationsPackage#getDataRepresentationTemplate55_TargetCompressionRatio()
	 * @model required="true"
	 *        annotation="http://www.eclipse.org/emf/2002/GenModel label_en='Target compression ratio' description_en='Target compression ratio, M:1 (with respect to the bit-depth specified in octet 20), when\r\noctet 22 indicates lossy compression. Otherwise, set to missing (see Note 3)'"
	 * @generated
	 */
	byte getTargetCompressionRatio();

	/**
	 * Sets the value of the '{@link org.mro.grib.model.files.secondEdition.dataRepresentations.DataRepresentationTemplate55#getTargetCompressionRatio <em>Target Compression Ratio</em>}' attribute.
	 * <!-- begin-user-doc -->
	 * <!-- end-user-doc -->
	 * @param value the new value of the '<em>Target Compression Ratio</em>' attribute.
	 * @see #getTargetCompressionRatio()
	 * @generated
	 */
	void setTargetCompressionRatio(byte value);

} // DataRepresentationTemplate55
